package com.benzhitech.core;

import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.http.FullHttpRequest;
import io.netty.handler.codec.http.FullHttpResponse;

/**
 * 函数式接口，用于定义处理特定路由的逻辑。
 */
@FunctionalInterface
public interface RouteHandler {

    /**
     * 处理 HTTP 请求并生成响应。
     *
     * @param ctx ChannelHandlerContext
     * @param request FullHttpRequest
     * @return FullHttpResponse 响应对象，如果为 null，则可能表示由 Handler 内部异步处理或已处理
     * @throws Exception 处理过程中可能抛出的异常
     */
    FullHttpResponse handle(ChannelHandlerContext ctx, FullHttpRequest request) throws Exception;
} 